#include "MainWindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QWidget(parent)
{
    // 设置窗口大小
    resize(1600, 900);
    setWindowTitle("学海通航-管理员端");
    setMinimumSize(1280, 720); // 设置最小窗口大小

    // 主布局（顶层布局）
    QHBoxLayout *mainLayout = new QHBoxLayout(this);

    // 左侧菜单栏
    QWidget *leftPanel = new QWidget;
    QVBoxLayout *leftLayout = new QVBoxLayout(leftPanel);
    leftLayout->setContentsMargins(0, 0, 0, 0);

    // 上部按钮区域
    QVBoxLayout *upperButtons = new QVBoxLayout;

    // 下部按钮区域
    QVBoxLayout *lowerButtons = new QVBoxLayout;

    leftLayout->addLayout(upperButtons);
    leftLayout->addLayout(lowerButtons);
    leftLayout->addStretch(); // 将按钮推至顶部

    // 创建按钮
    auto createButton = [](const QString &iconPath, const QString &text)
    {
        QPushButton *btn = new QPushButton;
        btn->setIcon(QIcon(iconPath));
        btn->setIconSize(QSize(50, 50));
        btn->setToolTip(text);
        btn->setStyleSheet("QPushButton {"
                           "border-radius: 10px;"
                           "background: #f0f0f0;"
                           "}"
                           "QPushButton:hover { background: #e0e0e0; }");
        return btn;
    };

    // 添加上部按钮
    QPushButton *homeBtn = createButton(":/uiIcon/resoures/uiIcon/blogReview.png", "文章审核");
    upperButtons->addWidget(homeBtn);

    QPushButton *messageBtn = createButton(":/uiIcon/resoures/uiIcon/commentReview.png", "评论审核");
    lowerButtons->addWidget(messageBtn);

    QPushButton *appealBtn = createButton(":/uiIcon/resoures/uiIcon/appeal.png", "申诉审核");
    lowerButtons->addWidget(appealBtn);

    // 内容区域
    contentArea = new QStackedWidget(this);

    // 主布局添加部件
    mainLayout->addWidget(leftPanel);
    mainLayout->addWidget(contentArea);

    // 设置布局
    setLayout(mainLayout);

    // 添加页面到堆栈
    homePage = new HomePage(this);
    messagePage = new CommentListWidget(this);
    appealPage = new AppealListWidget(this);
    blogDetailsPage = new BlogDetailsPage(this);
    myPage = new MyPage(this);

    // 创建 QScrollArea 并设置内容
    messageScrollArea = new QScrollArea(this);
    messageScrollArea->setWidgetResizable(true); // 自动调整大小
    messageScrollArea->setWidget(messagePage);

    contentArea->addWidget(homePage);          // 主页
    contentArea->addWidget(messageScrollArea); // 消息
    contentArea->addWidget(appealPage);        // 申诉
    contentArea->addWidget(blogDetailsPage);   // 文章详情页
    contentArea->addWidget(myPage);            // 我的

    // 连接按钮信号槽
    connect(homeBtn, &QPushButton::clicked, [this]()
            { contentArea->setCurrentWidget(homePage); });

    connect(messageBtn, &QPushButton::clicked, [this]()
            { contentArea->setCurrentWidget(messageScrollArea); });

    connect(appealBtn, &QPushButton::clicked, [this]()
            { contentArea->setCurrentWidget(appealPage); });

    connect(homePage, &HomePage::openDetailPage, [this]()
            { contentArea->setCurrentWidget(blogDetailsPage); });

    connect(appealPage, &AppealListWidget::openMyPage, [this]()
            { contentArea->setCurrentWidget(myPage); });
}
